
; When this mod is included in the original script,
; you can start any mission anywhere at any time.

; Usage: When on foot, press and hold CAMERA key,
;        press STRAFE LEFT or STRAFE RIGHT to select mission,
;        press ACTION key to start selected mission.

004F: create_thread StartMissions

...

:StartMissions
0001: wait 250 ms
00D6: if  0
0256:   player $PLAYER_CHAR defined
004D: jump_if_false StartMissions
00D6: if  0
80E0:   NOT   player $PLAYER_CHAR driving
004D: jump_if_false StartMissions
00D6: if  0
00E1:   key_pressed  0  19  ;; look behind key
004D: jump_if_false StartMissions3
0322: kill_player $PLAYER_CHAR

:StartMissions3
00D6: if  0
00E1:   key_pressed  0  13  ;; camera key
004D: jump_if_false StartMissions
00D6: if  0
00E1:   key_pressed  0  10  ;; strafe left
004D: jump_if_false StartMissions2
000C: $TEST -= 1
00D6: if 0
001A:   2 > $TEST
004D: jump_if_false ShowMText
0004: $TEST = 2
0002: jump ShowMText

:StartMissions2
00D6: if  0
00E1:   key_pressed  0  11  ;; strafe right
004D: jump_if_false ShowMText
0008: $TEST += 1
00D6: if 0
0018:   $TEST > 96
004D: jump_if_false ShowMText
0004: $TEST = 96

:ShowMText
01E4: text 1number lowpriority "HJ_IS"  $test  240 ms  1
00D6: if  0
00E1:   key_pressed  0  4  ;; action key
004D: jump_if_false StartMissions
00D6: if  0
0038:   $ONMISSION ==  0  ;; integer values
004D: jump_if_false StartMissions
00D6: if  0
03EE:   player $PLAYER_CHAR controllable
004D: jump_if_false StartMissions
0417: start_mission $test
0001: wait 1000 ms
0002: jump StartMissions
